package day_240430.testabstract;

// 主类
// 在Java中，abstract关键字用于定义抽象类和抽象方法。抽象类是一种特殊的类，
// 不能被实例化，只能被用作其他类的父类。抽象类通常包含抽象方法，
// 这些方法没有具体的实现，只有方法的声明，需要子类去实现具体的逻辑。
public class TestAbstract {
    public static void main(String[] args) {
        Circle circle = new Circle(5);
        System.out.println("Area of circle: " + circle.calculateArea());
        circle.printDescription();
    }
}
// Shape是一个抽象类，其中包含一个抽象方法calculateArea()和一个非抽象方法printDescription()。
// Circle是Shape的子类，实现了calculateArea()方法。
// 在Main类中，我们实例化了Circle类，并调用了calculateArea()和printDescription()方法。
//通过使用抽象类和抽象方法，可以实现多态性和封装性，同时提供了一种模板方法设计模式，让子类实现特定的行为

